最大连续 1 的个数

题目描述:给定一个二进制数组, 计算其中最大连续 1 的个数。

示例:
输入:[1,1,0,1,1,1]
输出:3
解释:开头的两位和最后的三位都是连续 1 ,所以最大连续 1 的个数是 3.

方法一:一次遍历 双指针

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Solution {
public int findMaxConsecutiveOnes(int[] nums) {
int count = 0, maxCount = 0;
for(int i = 0; i < nums.length; i++) {
if(nums[i] == 1) {
count++;
} else {
maxCount = Math.max(maxCount, count);
count = 0;
}
}
return Math.max(maxCount, count);
}
}

复杂度分析

  • 时间复杂度:O(n),其中 n 是数组的长度。需要遍历数组一次。
  • 空间复杂度:O(1)

执行结果:通过

  • 执行用时:2 ms, 在所有 Java 提交中击败了93.86%的用户
  • 内存消耗:40.1 MB, 在所有 Java 提交中击败了40.16%的用户